/**
 * 服务器启动文件
 * 用于启动Express应用
 */

const app = require('./app')
const config = require('./config/config')

const sequelize = require('./config/database')
const { initModels } = require('./config/models')

// 从环境变量中获取端口，默认为3000
const PORT = config.server.port

// 启动服务器
app.listen(PORT, async () => {
	console.log(`服务器已启动，监听端口 ${PORT}`)

	try {
		// 测试数据库连接
		await sequelize.authenticate()
		console.log('数据库连接成功')

		// 初始化模型关系
		initModels()

		// 同步数据库模型（在生产环境中应谨慎使用）
		// await sequelize.sync({ force: true }); // 开发环境下强制重建表结构
		console.log('数据库模型同步成功')
	} catch (error) {
		console.error('无法连接到数据库:', error)
	}
})
